package demo5.example;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: java-generic
 * @description: 类型下限通配符
 * @author: bjc
 * @create: 2021-08-15 15:58
 */
public class Main2 {

    public static void main(String[] args) {
        List<Animal> animals = new ArrayList<>();
        List<Cat> cats = new ArrayList<>();
        List<MiniCat> miniCats = new ArrayList<>();

        showAnimal(animals);
        showAnimal(cats);

        //报错
//        showAnimal(miniCats);
    }

    /**
     * 类型通配符下限，要求集合只能是Cat或Cat的父类类型
     * TODO  方法中可以填充元素
     * @param list
     */
    public static void showAnimal(List<? super Cat> list){
        for (Object o : list) {
            System.out.println(o);
        }
    }
}
